The technical field relates to database management, and, in particular, to rule based compatibility module.
Computers are powerful tools for storing and providing access to vast amounts of information. Computer databases are a common mechanism for storing information on computer systems while providing easy access to users. A typical database is an organized collection of related information stored as xe2x80x9crecordsxe2x80x9d having xe2x80x9cfieldsxe2x80x9d of information. Between the actual physical databases itself and the users of the system, a database management system is typically provided as a software cushion or layer. In essence, the database management system shields the database user from knowing or even caring about underlying hardware-level details. All requests from users for access to the data are typically processed by the database management system. In other words, the database management system provides users with a conceptual view of the database that is removed from the hardware level.
In database management, maintaining compatibility between different versions of database systems has long being a challenge. Currently, version compatibility issues, which are highly dependent on the operational context, are typically handled by separate ad-hoc solutions. These ad-hoc solutions are typically not integrated and do not interact with each other. Functioning separately, these ad-hoc solutions provide less value to the client programmers. In addition, these separate ad-hoc solutions are typically not verifiable in any rigorous way.
A method for testing compatibility in a database system includes getting an instance of a rule based compatibility module, getting rules capable of testing compatibility of databases, and evaluating the rules, which returns a value of xe2x80x9ctruexe2x80x9d or xe2x80x9cfalsexe2x80x9d. The instance depends on an operational environment of the compatibility module. The method further includes executing conditional application code by a client program if the evaluation of the rules returns a value of xe2x80x9ctruexe2x80x9d, and executing different conditional application code by the client program if the evaluation of the rules returns a value of xe2x80x9cfalsexe2x80x9d.
The rule based compatibility module provides a single unified mechanism for testing rules where testing results depend on various combinations of database queries, computable values, and/or run-string parameters. The testing results may be evaluated within a particular operational environment.